/**
 * 分页查询物料列表请求参数类型
 */
export interface MaterialPageParams extends PageCommonParams {
    /**
     * 开始时间
     */
    beginTime?: string;
    /**
     * 创建人
     */
    creator?: string;
    /**
     * 结束时间
     */
    endTime?: string;
    /**
     * 制造策略
     */
    manufacturingStrategy?: string;
    /**
     * 物料编码
     */
    materialCode?: string;
    /**
     * 物料名称
     */
    materialName?: string;
    /**
     * 生产类型
     */
    productionType?: string;
    /**
     * 生产单位
     */
    productUnit?: string;
    /**
     * 采购单位
     */
    purchaseUnit?: string;
    /**
     * 生产单位和采购单位
     */
    productPurchaseUnitRatio?: string;
}

export interface MaterialPageResponse extends ResponseListCommon<MaterialListInfo> {}

/**
 * 新增/编辑物料管理请求参数类型，物料管理列表类型
 */
export interface MaterialListInfo extends anyObj {
    /**
     * 实际库存
     */
    actualInventory?: number;
    /**
     * 物料分类
     */
    classificationName: string;
    createTime?: Date;
    /**
     * 创建人
     */
    creator?: string;
    /**
     * 数据来源
     */
    dataSource?: DataSource;
    /**
     * 成品率
     */
    finishedProductRate?: number;
    /**
     * 固定提前期
     */
    fixedLeadTime: number;
    /**
     * 固定提前期批量
     */
    fixedLeadTimeBatch: number;
    /**
     * 主键
     */
    id?: number;
    /**
     * 库存
     */
    inventory: number;
    /**
     * 制造策略
     */
    manufacturingStrategy?: ManufacturingStrategy;
    /**
     * 材质
     */
    material?: string;
    /**
     * 物料分类id
     */
    materialClassificationId?: number;
    /**
     * 物料编码
     */
    materialCode: string;
    /**
     * 物料名称
     */
    materialName: string;
    /**
     * 物料规格
     */
    materialSpecification?: string;
    /**
     * 最大订货量
     */
    maximumOrderQuantity?: number;
    /**
     * 最小订货量
     */
    minimumOrderQuantity?: number;
    /**
     * 生产类型
     */
    productionType?: ProductionType;
    /**
     * 安全库存
     */
    safetyInventory?: number;
    /**
     * 生产单位
     */
    productUnit?: string;
    /**
     * 采购单位
     */
    purchaseUnit?: string;
    /**
     * 采购单位和采购单位
     */
    productPurchaseUnitRatio?: string;
    /**
     * 采购单位id
     */
    materialUnitId?: number;
    updateTime?: Date;
}

/**
 * 数据来源
 */
export enum DataSource {
    Artificial = 'ARTIFICIAL',
    Excel = 'EXCEL'
}

/**
 * 制造策略
 */
export enum ManufacturingStrategy {
    Mto = 'MTO',
    Mts = 'MTS'
}

/**
 * 生产类型
 */
export enum ProductionType {
    外购 = '外购',
    委外 = '委外',
    自制 = '自制'
}

/**
 * 物料分类设置
 */
export interface MaterialSettingResponse extends ResponseListCommon<MaterialSetting> {}
export interface MaterialSetting {
    [key: string]: any;
    /**
     * 分类名称
     */
    classificationName?: string;
    /**
     * 创建时间
     */
    createTime?: Date;
    /**
     * 描述
     */
    description?: string;
    /**
     * 主键
     */
    id?: number;
    /**
     * 更新时间
     */
    updateTime?: Date;
    /**
     * 是否禁用
     */
    disabled?: boolean;
    edit?: boolean;
    /**
     * 生产单位
     */
    productUnit?: string;
    /**
     * 采购单位
     */
    purchaseUnit?: string;
    /**
     * 生产单位和采购单位
     */
    productPurchaseUnitRatio?: string;
}
